//
//  main.m
//  内存管理_引用计数
//
//  Created by mir_yan on 2018/9/30.
//  Copyright © 2018年 hakeem. All rights reserved.
//

/**
 ARC 自动引用计数
 MRC 手动
 应用计数 生成一个对象的时候 将引用计数置为1  对象使用时候对象+1，不使用的时候-1，直到引用计数0，对象自动释放。
 
    当对象执行 retain 时，引用计数+1.
 
 僵尸对象 执行过度 释放方法
 
 内存管理法则 谁申请 谁释放
 申请方法  alloc copy new retain
 释放方法  release
 
 互编
 build Phases 下添加参数 -fno-objc-arc
 
 weak 可以解决循环引用的额问题
 */
#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
    // 释放池 就近原则释放  其他释放池会屏蔽掉
    @autoreleasepool {
        Person* p = [[Person alloc] init];
//        long count = [p retainCount];
//        NSLog(@"%ld", count);
        
        // autorelease 修饰对象 自动释放内存
//        [p autorelease];
        [p test];
        
        NSLog(@"Hello, World!");
    }
    return 0;
}
